// Vita3K emulator project
// Copyright (C) 2024 Vita3K team
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

OPCODE(FMAD)
OPCODE(FADM)
OPCODE(FMSA)
OPCODE(FFRC)
OPCODE(FRCP)
OPCODE(FRSQ)
OPCODE(FLOG)
OPCODE(FEXP)
OPCODE(FSQRT)
OPCODE(FSIN)
OPCODE(FCOS)
OPCODE(FDP)
OPCODE(FMIN)
OPCODE(FMAX)
OPCODE(FDSX)
OPCODE(FDSY)
OPCODE(FMAD16)
OPCODE(FMINMAX)
OPCODE(FMAXMIN)
OPCODE(EFO)
OPCODE(PCKF16F32)
OPCODE(PCKF16F16)
OPCODE(PCKF16U16)
OPCODE(PCKF16S16)
OPCODE(PCKU16F32)
OPCODE(PCKU16F16)
OPCODE(PCKU16U16)
OPCODE(PCKU16S16)
OPCODE(PCKS16F32)
OPCODE(PCKS16F16)
OPCODE(PCKS16U16)
OPCODE(PCKS16S16)
OPCODE(PCKU8F32)
OPCODE(PCKU8F16)
OPCODE(PCKU8U16)
OPCODE(PCKU8S16)
OPCODE(PCKS8F32)
OPCODE(PCKS8F16)
OPCODE(PCKS8U16)
OPCODE(PCKS8S16)
OPCODE(PCKO8F32)
OPCODE(PCKO8F16)
OPCODE(PCKO8U16)
OPCODE(PCKO8S16)
OPCODE(PCKC10F32)
OPCODE(PCKC10F16)
OPCODE(PCKC10U16)
OPCODE(PCKC10S16)
OPCODE(UNPCKF32F32)
OPCODE(UNPCKF32F16)
OPCODE(UNPCKF32U16)
OPCODE(UNPCKF32S16)
OPCODE(UNPCKF32U8)
OPCODE(UNPCKF32S8)
OPCODE(UNPCKF32O8)
OPCODE(UNPCKF32C10)
OPCODE(UNPCKF16F16)
OPCODE(UNPCKF16U16)
OPCODE(UNPCKF16S16)
OPCODE(UNPCKF16U8)
OPCODE(UNPCKF16S8)
OPCODE(UNPCKF16O8)
OPCODE(UNPCKF16C10)
OPCODE(UNPCKU16F16)
OPCODE(UNPCKU16U16)
OPCODE(UNPCKU16S16)
OPCODE(UNPCKU16U8)
OPCODE(UNPCKU16S8)
OPCODE(UNPCKU16O8)
OPCODE(UNPCKU16C10)
OPCODE(UNPCKS16F16)
OPCODE(UNPCKS16U16)
OPCODE(UNPCKS16S16)
OPCODE(UNPCKS16U8)
OPCODE(UNPCKS16S8)
OPCODE(UNPCKS16O8)
OPCODE(UNPCKS16C10)
OPCODE(UNPCKU8U8)
OPCODE(UNPCKC10C10)
OPCODE(AND)
OPCODE(OR)
OPCODE(XOR)
OPCODE(SHL)
OPCODE(SHR)
OPCODE(ASR)
OPCODE(ROL)
OPCODE(RLP)
OPCODE(SOP2)
OPCODE(SOP2WM)
OPCODE(SOP3)
OPCODE(U8DOT3)
OPCODE(U8DOT4)
OPCODE(U16DOT3)
OPCODE(U16DOT4)
OPCODE(U8DOT3OFF)
OPCODE(U8DOT4OFF)
OPCODE(U16DOT3OFF)
OPCODE(U16DOT4OFF)
OPCODE(IMA8)
OPCODE(IMA16)
OPCODE(IMAE)
OPCODE(IMA32)
OPCODE(IDIV)
OPCODE(ADIF)
OPCODE(ADIFSUM)
OPCODE(FIRV)
OPCODE(FIRVH)
OPCODE(BILIN)
OPCODE(FIRH)
OPCODE(FIRHH)
OPCODE(SSUM16)
OPCODE(SMP1D)
OPCODE(SMP2D)
OPCODE(SMP3D)
OPCODE(SMP1DBIAS)
OPCODE(SMP2DBIAS)
OPCODE(SMP3DBIAS)
OPCODE(SMP1DREPLACE)
OPCODE(SMP2DREPLACE)
OPCODE(SMP3DREPLACE)
OPCODE(SMP1DGRAD)
OPCODE(SMP2DGRAD)
OPCODE(SMP3DGRAD)
OPCODE(LDAB)
OPCODE(LDAW)
OPCODE(LDAD)
OPCODE(LDAQ)
OPCODE(STAB)
OPCODE(STAW)
OPCODE(STAD)
OPCODE(STAQ)
OPCODE(LDLB)
OPCODE(LDLW)
OPCODE(LDLD)
OPCODE(LDLQ)
OPCODE(STLB)
OPCODE(STLW)
OPCODE(STLD)
OPCODE(STLQ)
OPCODE(LDTB)
OPCODE(LDTW)
OPCODE(LDTD)
OPCODE(LDTQ)
OPCODE(STTB)
OPCODE(STTW)
OPCODE(STTD)
OPCODE(STTQ)
OPCODE(ELDD)
OPCODE(ELDQ)
OPCODE(BA)
OPCODE(BR)
OPCODE(LAPC)
OPCODE(BEXCEPTION)
OPCODE(IDF)
OPCODE(WDF)
OPCODE(LIMM)
OPCODE(EMITPIXEL1)
OPCODE(EMITPIXEL2)
OPCODE(EMITPIXEL)
OPCODE(EMITSTATE)
OPCODE(EMITVERTEX)
OPCODE(EMITPRIMITIVE)
OPCODE(EMITPDS)
OPCODE(MOV)
OPCODE(FMOV)
OPCODE(FMUL)
OPCODE(FADD)
OPCODE(FSSQ)
OPCODE(LABEL)
OPCODE(FSUB)
OPCODE(SETPGT)
OPCODE(SETPGTE)
OPCODE(SETPEQ)
OPCODE(SETPLT)
OPCODE(SETPLTE)
OPCODE(SETPNEQ)
OPCODE(SDM)
OPCODE(SDA)
OPCODE(AMM)
OPCODE(SMM)
OPCODE(AMS)
OPCODE(SMS)
OPCODE(DMA)
OPCODE(NOP)
OPCODE(FTZ)
OPCODE(FTNZ)
OPCODE(U16TZ)
OPCODE(U16TNZ)
OPCODE(SMOA)
OPCODE(SMR)
OPCODE(SMLSI)
OPCODE(SMBO)
OPCODE(IMO)
OPCODE(SETFC)
OPCODE(FDP3)
OPCODE(FDP4)
OPCODE(FDPC)
OPCODE(FDPC3)
OPCODE(FDPC4)
OPCODE(FDDP)
OPCODE(FDDP3)
OPCODE(FDDP4)
OPCODE(FDDPC)
OPCODE(FDDPC3)
OPCODE(FDDPC4)
OPCODE(LOCK)
OPCODE(RELEASE)
OPCODE(FSUBFLR)
OPCODE(LDR)
OPCODE(STR)
OPCODE(PCOEFF)
OPCODE(PTOFF)
OPCODE(ATST8)
OPCODE(DEPTHF)
OPCODE(WOP)
OPCODE(SETM)
OPCODE(PHAS)
OPCODE(PHASIMM)
OPCODE(AINTRP1)
OPCODE(AINTRP2)
OPCODE(AADD)
OPCODE(ASUB)
OPCODE(ASOP)
OPCODE(ARSOP)
OPCODE(ALRP)
OPCODE(LRP1)
OPCODE(LRP2)
OPCODE(ASOP2)
OPCODE(IADD16)
OPCODE(ISUB16)
OPCODE(IMUL16)
OPCODE(IADDU16)
OPCODE(ISUBU16)
OPCODE(IMULU16)
OPCODE(IADD32)
OPCODE(IADD8)
OPCODE(ISUB8)
OPCODE(IMUL8)
OPCODE(IMULU8)
OPCODE(IMOV16)
OPCODE(IADDU32)
OPCODE(IMAD)
OPCODE(PADDING)
OPCODE(MOVC)
OPCODE(MOVMSK)
OPCODE(FPMA)
OPCODE(IADDU8)
OPCODE(ISUBU8)
OPCODE(FPMUL8)
OPCODE(FPADD8)
OPCODE(FPSUB8)
OPCODE(SABLND)
OPCODE(FNRM32)
OPCODE(FNRM16)
OPCODE(MOEST)
OPCODE(CF)
OPCODE(CI)
OPCODE(CFI)
OPCODE(EMITMTEVERTEX)
OPCODE(EMITMTESTATE)
OPCODE(EMITVCBVERTEX)
OPCODE(EMITVCBSTATE)
OPCODE(VDP3)
OPCODE(VDP4)
OPCODE(VMAD3)
OPCODE(VMAD4)
OPCODE(VMUL3)
OPCODE(VMUL4)
OPCODE(VADD3)
OPCODE(VADD4)
OPCODE(VSUB3)
OPCODE(VSUB4)
OPCODE(VSSQ3)
OPCODE(VSSQ4)
OPCODE(VMOV3)
OPCODE(VMOV4)
OPCODE(VMOV)
OPCODE(VMOVC)
OPCODE(VMOVCU8)
OPCODE(VMAD)
OPCODE(VMUL)
OPCODE(VADD)
OPCODE(VFRC)
OPCODE(VMIN)
OPCODE(VMAX)
OPCODE(VDSX)
OPCODE(VDSY)
OPCODE(VDP)
OPCODE(VSUB)
OPCODE(VSSQ)
OPCODE(VF16MAD)
OPCODE(VF16MUL)
OPCODE(VF16ADD)
OPCODE(VF16FRC)
OPCODE(VF16DSX)
OPCODE(VF16DSY)
OPCODE(VF16MIN)
OPCODE(VF16MAX)
OPCODE(VF16DP)
OPCODE(VF16SUB)
OPCODE(VRCP)
OPCODE(VRSQ)
OPCODE(VLOG)
OPCODE(VEXP)
OPCODE(VPCKU8U8)
OPCODE(VPCKU8S8)
OPCODE(VPCKU8O8)
OPCODE(VPCKU8U16)
OPCODE(VPCKU8S16)
OPCODE(VPCKU8F16)
OPCODE(VPCKU8F32)
OPCODE(VPCKS8U8)
OPCODE(VPCKS8S8)
OPCODE(VPCKS8O8)
OPCODE(VPCKS8U16)
OPCODE(VPCKS8S16)
OPCODE(VPCKS8F16)
OPCODE(VPCKS8F32)
OPCODE(VPCKO8U8)
OPCODE(VPCKO8S8)
OPCODE(VPCKO8O8)
OPCODE(VPCKO8U16)
OPCODE(VPCKO8S16)
OPCODE(VPCKO8F16)
OPCODE(VPCKO8F32)
OPCODE(VPCKU16U8)
OPCODE(VPCKU16S8)
OPCODE(VPCKU16O8)
OPCODE(VPCKU16U16)
OPCODE(VPCKU16S16)
OPCODE(VPCKU16F16)
OPCODE(VPCKU16F32)
OPCODE(VPCKS16U8)
OPCODE(VPCKS16S8)
OPCODE(VPCKS16O8)
OPCODE(VPCKS16U16)
OPCODE(VPCKS16S16)
OPCODE(VPCKS16F16)
OPCODE(VPCKS16F32)
OPCODE(VPCKF16U8)
OPCODE(VPCKF16S8)
OPCODE(VPCKF16O8)
OPCODE(VPCKF16U16)
OPCODE(VPCKF16S16)
OPCODE(VPCKF16F16)
OPCODE(VPCKF16F32)
OPCODE(VPCKF16C10)
OPCODE(VPCKF32U8)
OPCODE(VPCKF32S8)
OPCODE(VPCKF32O8)
OPCODE(VPCKF32U16)
OPCODE(VPCKF32S16)
OPCODE(VPCKF32F16)
OPCODE(VPCKF32F32)
OPCODE(VPCKF32C10)
OPCODE(VPCKC10F16)
OPCODE(VPCKC10F32)
OPCODE(VPCKC10C10)
OPCODE(IDXSCR)
OPCODE(IDXSCW)
OPCODE(SPRVV)
OPCODE(ISUB32)
OPCODE(ISUBU32)
OPCODE(CNDST)
OPCODE(CNDEF)
OPCODE(CNDSM)
OPCODE(CNDLT)
OPCODE(CNDEND)
OPCODE(LDATOMIC)
OPCODE(UNPCKU8S8)
OPCODE(UNPCKS8U8)

OPCODE(MAXIMUM)
OPCODE(INVALID)